#ifndef FOURMILLIERE_H
#define FOURMILLIERE_H

using namespace std;

class Fourmilliere
{
	private :

		// Variables stockants les nombres de fourmis
		// par type
		int NB_Reines;
		int NB_Couveuses;
		int NB_Ouvrieres;
		int NB_Batisseuses;
		int NB_Oeufs;

		// Variables propres à la fourmillière
		int Nourriture;
		int PV;
		int NB_Jours_Ecoules;
		int NB_Total_Fourmis;
		int NB_Jours_Famine;
	
	public :
		// Ctor
		Fourmilliere();

		// Méthode d'initialisation de la Fourmillière
		void Init();
		void DisplayState();
		void NextDay();

		// Accesseurs
		int GetNourriture();
		void AddNourriture(int);
		int GetPV();
		int AddPV(int);	
		int GetNbJoursFamine();	
		int GetPopulationTotale();

		// Accesseurs aux compteurs
		void OuvriereIsBorn();
		void OuvriereIsDead();
		void BatisseuseIsBorn();
		void BatisseuseIsDead();
		void CouveuseIsBorn();
		void CouveuseIsDead();
		void ReineIsBorn();
		void ReineIsDead();

		void AddOeuf();
		void OeufEclos();

		int NB_Oeufs_Max_A_Pondre();

		// Variables de paramétrage de la fourmillière
		static const float RAPPORT_SECONDE_JOUR = 1;
		static const int OUVRIERE_NOURRITURE = 4;
		static const int BATISSEUSE_PV = 1;
		static const int POURCENTAGE_OUVRIERE = 33;
		static const int POURCENTAGE_COUVEUSE = 33;
		static const int POURCENTAGE_BATISSEUSE = 33;
		static const int TEMPS_ECLOSION = 3;
		static const int OEUFS_PAR_COUVEUSE = 5;
		static const int NB_JOURS_MAX_FAMINE = 7;
		



};

#endif
